/*
 * Copyright 2009-2019 the original author or authors  
 *
 */
package com.livery.liu.dao;

import java.io.Serializable;
import java.util.List;

/**
 * 基本泛型dao（其它的数据库实现和接口都继承而来）
 * @author  <a href="mailto:livery.liu@gmail.com"> livery liu</a>
 */

public interface IBaseDao<T> {

	/**
	 * 根据ID查询对象
	 * @param id
	 * @return
	 */
	public T getById(Serializable id);
	
	/**
	 * 插入对象
	 * @param vo
	 * @return
	 */
	public T save(T vo);
	
	/**
	 * 更新对象
	 * @param vo
	 * @return
	 */
	public int update(T vo);
	
	/**
	 * 删除对象（真实删除）
	 * @param vo
	 * @return
	 */
	public int delete(Serializable id);
	
	/**
	 * 以对象的属性作为条件查询list(PS:对象的属性应该尽量选用包装类)
	 * @return
	 */
	public List<T> getList(T vo);
	
	/**
	 * 得到所有的列表(不太常用)
	 * @return
	 */
	public List<T> getAll();
	
}
